// const m = new Map();
// const o = {p: 'Hello World'};

// m.set(o, 'content')
// m.get(o) // "content"

// m.has(o) // true
// m.delete(o) // true
// m.has(o) // false 

// const map = new Map([['name','tom'],['age',18]])
// console.log(map.get('name')); //tom

// const s = new Set([[1,2],[3,4]])
// const m1 = new Map([s])
// console.log(m);

// const map = new Map();
// map.set(['a'], 555);
// map.get(['a']) // undefined

// const map = new Map();
// const k1 = ['a'];
// const k2 = ['a'];
// map
// .set(k1, 111)
// .set(k2, 222);
// map.get(k1) // 111
// map.get(k2) // 222

// const map = new Map([
//     ['F', 'no'],
//     ['T',  'yes'],
//   ]);
//   for (let key of map.keys()) {
//     console.log(key);
//   }
//   // "F"
//   // "T"
//   for (let value of map.values()) {
//     console.log(value);
//   }
//   // "no"
//   // "yes"
//   for (let item of map.entries()) {
//     console.log(item[0], item[1]);
//   }
//   // "F" "no"
//   // "T" "yes"
  
//   // 或者
//   for (let [key, value] of map.entries()) {
//     console.log(key, value);
//   }
//   // "F" "no"
//   // "T" "yes"
//   // 等同于使用map.entries()
//   for (let [key, value] of map) {
//     console.log(key, value);
//   }
//   // "F" "no"
//   // "T" "yes"

// const wm = new WeakMap();
// let key = {};
// let obj = {foo: 1};
// wm.set(key, obj);
// key = null;
// wm.get(key)
// console.log(wm.get(key));


//#weakMap
let myWeakmap = new WeakMap();
myWeakmap.set(
  document.getElementById('logo'),
  {timesClicked: 0})
;
document.getElementById('logo').addEventListener('click', function() {
  let logoData = myWeakmap.get(document.getElementById('logo'));
  logoData.timesClicked++;
}, false);

